/**
 * 创建人:  @author huangpeng
 * 创建时间:  2024年10月02日 02:38
 * 项目名称:  lemon-blog-cloud
 * 文件名称:  RemoteBlogWebFallbackFactory
 * 文件描述:  @Description: 系统前台feign调用熔断
 * 公司名称:  xxxxxx
 * <p>
 * All rights Reserved, Designed By xxxxxx
 *
 * @Copyright: 2021-2024
 */
package com.lemon.system.api.factory;

import com.lemon.common.core.domain.Result;
import com.lemon.system.api.RemoteBlogWebService;
import com.lemon.system.api.domain.BlBlog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 包名称：com.lemon.system.api.factory
 * 类名称：RemoteBlogWebFallbackFactory
 * 类描述：系统前台feign调用熔断降级处理
 * 创建人：@author huangpeng
 * 创建时间：2024年10月02日 02:38
 */
@Component
public class RemoteBlogWebFallbackFactory implements FallbackFactory<RemoteBlogWebService> {

    private static final Logger log = LoggerFactory.getLogger(RemoteBlogWebFallbackFactory.class);

    @Override
    public RemoteBlogWebService create(Throwable cause) {
        log.error("用户服务调用失败:{}", cause.getMessage());
        return new RemoteBlogWebService()
        {
            @Override
            public Result<List<BlBlog>> searchBlogList(int pageNum, int pageSize, String token) {
                return Result.error("远程查询用户数据失败: " + cause.getMessage());
            }

            @Override
            public Result<BlBlog> searchBlogInfo(Long id) {
                return Result.error("远程调用根据文章id查询用户数据失败: " + cause.getMessage());
            }
        };
    }
}
